import pandas as pd
import numpy as np
df = pd.read_csv('g_test.csv')
def readset(a,b,c,d,df):
    df=df.iloc[a:b, c:d]
    print(df)
    # 无量纲化（初值法）
    # for i in range(b-1,-1,-1):
    #     df.iloc[i,:] = df.iloc[i, :] / df.iloc[0, :]
    # print(df)
    for i in range(d -c):
        df.iloc[:, i] = df.iloc[:, i].apply(lambda x: (x / df.iloc[:, i].mean()))
    print(df)
    #差序列
    for i in range(d-c-1,0,-1):
        df.iloc[:,i]=abs(df.iloc[:,i]-df.iloc[:,0])
    # 删除比较序列
    df.drop(df.columns[0], axis=1,inplace=True)
    # 每列最大值，最小值
    min=df.stack().min()
    max=df.stack().max()
    # 分辨系数p
    p=0.5
    # 对每个元素应用公式
    df=df.applymap(lambda x: (min + p * max) / (x + p * max))
    # 所有列均值，返回一个series序列，axis=1 返回所有行的均值
    a=df.mean(axis=0)
    # 拼接均值series到dataframe最后一列
    df = df.append(a, ignore_index=True)
    print(df)
    # 按照均值的值对series排序
    sorted = a.sort_values(ascending=True)
    # for value in sorted.keys():
    #     print(value)
    # 把排序后的索引转换为列表
    list1 = (sorted.index).to_list()
    # 把排序后的值转换为列表
    list2 = sorted.to_list()
    print(list1)
    print(list2)
    # for i in list1:
    #     print(a[i])
readset(0,7,1,5,df)


